// Rest参数与spread扩展运算符(...)在ES6中已经引入, 不过在ES6中只针对于数组, 在ES9中为对象提供了像数组一样的rest参数与扩展运算符

function connect({ host, port, username, password, ...desc }) {
  console.log(host);
  console.log(port);
  console.log(username);
  console.log(password);
  // 后面所有的参数都会写入到desc对象中 这就是只针对对象的rest参数
  console.log(desc);
}

connect({
  host: "127.0.0.1",
  port: 3306,
  username: "root",
  password: "root",
  connectTime: 10000,
  type: "any"
})


// 对象的spread扩展运算符
const person1 = {
  name: "小陈",
} // 使用...扩展运算符后 => name: "小陈"
const person2 = {
  age: 18,
}
const person3 = {
  sex: "男"
}
// 使用扩展运算符实现对象合并
const mergePerson = { ...person1, ...person2, ...person3 };
console.log(mergePerson);